package cn.nju.seg.atg.callCPP;

public class CallCPP {

	public CallCPP()
	{
		
	}
	
//	public native void callExpint(int n,double x);
//	
//	public native void callBessi(int n,double x);
//	
//	public native void callBessik(double x,double xnu);
//	
//	public native void callBessj(int n,double x);
//	
//	public native void callBessj0(double x);
//	
//	public native void callBessjy(double x,double xnu);
//	
//	public native void callBetai(double a,double b,double z);
//	
//	public native void callBnlDev(double pp,int n,int idum);
//	
//	public native void callDawson(double x);
	
	public native double callEi(double x);
//	
////	public native void callFactln(int n);
//	
//	public native double callGammp(double a, double x);
//	
////	public native void callGser(double a,double s);
//	
//	public native int callJulday(int mm, int id, int iyyy);
//	
//	public native double callRan1(int idum);
//	
////	public native void callPlgndr(int l,int m,double x);
////	
////	public native void callRan2(int x);
////	
////	public native void callRj(double x,double y,double z,double p);
////	
////	public native void callSncndn(double uu,double emmc);
////	
////	public native void callCisi(double x);
////	
//	public native void callJuduge(double x, double y, double z);
//	
	public native int callTriangle(int a, int b, int c);
//	
	public native boolean callIsLeapYear(int year);
//	
	public native boolean callIsValidDate(int day, int month, int year);
//	
	public native boolean callCheckX(double x);
//	
	public native void callGetRootOfQuadraticF(float a, float b, float c);
//	
	public native int callSum(int n);
	
//	
	public native double callBessi(int n, double x);
//	
	public native double callBessj(int n, double x);
//	
	public native double callExpint(int n, double x);
//	
	public native double callBetacf(double a, double b, double x);
//	
	public native double callCaldat(int julian, int mm, int id, int iyyy);
//	
	public native double callPlgndr(int l, int m, double x);
//
	public native double callJulday(int mm,int id,int iyyy);
//
	public native double callGammp(double a,double x);
	/************************************************
	 | WCET_BENCH中的函数								|
	 ***********************************************/
	/*
	 * adpcm.c
	 */
//	public native int callMy_abs(int n);
	
//	public native int callMy_fabs(int n);
	
//	public native int callMy_sin(int rad);
	
//	public native void callDecode(int input);
	
//	public native int callEncode(int xin1, int xin2);
	
//	public native int callFiltep(int rlt1, int al1, int rlt2, int al2);
	
//	public native int callQuantl(int el, int detl);
	
//	public native int callLogscl(int il, int nbl);
	
//	public native void callUpzero(int dlt, int dlti, int bli);
	
//	public native int callUppol2(int al1, int al2, int plt, int plt1, int plt2);
	
//	public native int callUppol1(int al1, int apl2, int plt, int plt1);
	
//	public native int callLogsch(int ih, int nbh);
	
	/*
	 * crc.c
	 */
	public native int callIcrc(short crc, long len, short jinit, int jrev);
	
	/*
	 * ludcmp.c
	 */
//	public native int callLudcmp(int n, double eps);
	
	static
	{
		try
		{   // 加载本地方法所在的链接库名
			System.loadLibrary("callCPP");
		}
		catch (UnsatisfiedLinkError e)
		{
			System.err.println("Cannot load callCPP library:\n"+e.toString());
		}
	}
	
}
